﻿using System.Collections.Generic;
using DomainModel;

namespace Services.Abstract
{
    public interface IUserService : IService<User>
    {
        User GetUserByLogin(string login);
        List<User> GetUsers(Role role, bool approvedOnly = true);
        List<User> GetUsers(Group group, bool approvedOnly = true);
        bool LoginIsBusy(string login);
        bool EmailIsBusy(string email);
        bool UserIsApproved(string login);
        bool UserIsPraepostor(User student, Group group);
        bool UserIsCurator(User teacher, Group group);
        void Approve(User user);
        int GetNotApprovedUsersCount();
        List<User> GetStudentsWithoutParent();
        User GetParent(User user);
        bool CredentialsAreValid(string login, string password);
        void SignIn(string login, string password, bool rememberMe);
        void SignOut();
    }
}
